# **********编写模块**********
# 编写一个自己名字的模块，实现以下功能：
# 作为 Apple Store App 独立开发者，你要搞限时促销，
# 为你的应用生成激活码，使用python生成N个激活码
# ·前置模块：random、string
# ·32位由A-Z0-9组成的字符
# ·N由用户输入（注意判断输入是否合法）
# ·注意文档注释
# ·将文件发布并安装到自己的机器
# ·将激活码放到文件

import random
import string

# 判断输入是否合法
def judge_legal():
    while True:
        global N
        N = input("请输入你想生成的激活码的个数：")
        if N.isdigit():
            N = int(N)
            print(f"将生成{N}个激活码！")
            break
        else:
            print("请输入有效的数字！")

# 随机生成1个32位的激活码
def activation_code1():
    # A-Z0-9的字符组成
    rule = string.digits + string.ascii_uppercase
    activation_code = ""
    for i in range(1,33):
        activation_code += random.choice(rule)
        if i % 8 == 0 and i != 32:
            activation_code += "-"
    return activation_code

# 随机生成N个激活码
def activation_codes():
    judge_legal()
    temporary = []
    for i in range(N):
        ac_one = activation_code1()
        # 去掉重复元素
        if ac_one not in temporary:
            temporary.append(ac_one)
    print(temporary)
    for code in temporary:
        with open("activation_code.txt","a+") as fp:
            # 将激活码写入文件
            fp.write(code + '\n')

activation_codes()

